#0ee8fa5dc525c1a1f23fc6911e921e4a
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
prefix = "knight/paladin/cn/skillDetail"

# 盾挑
# knight/paladin/3c5604bdbb0240b8f130f59ab40509c3
# 0ee8fa5dc525c1a1f23fc6911e921e4a/3c5604bdbb0240b8f130f59ab40509c3
class Skill0(ActiveSkill):
    """
        用盾牌攻击敌人并使其浮空。\n
        转职为混沌魔灵或龙骑士后， 技能类型变为独立攻击力。\n
        [帝国骑士的基本技能。\n
        与敌人对战时， 一边防守， 一边寻找敌人的弱点， 看准时机使用盾牌进行强力的攻击， 让敌人防不胜防。\n
        只有完全掌握盾挑的人才有资格当上骑士团团长， 千万不要小看这个技能。]
    """
    name = "盾挑"
    learnLv = 1
    masterLv = 10
    maxLv = 20
    position = 3 #TODO
    rangeLv = 3
    cd = 2
    uuid = "3c5604bdbb0240b8f130f59ab40509c3"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 盾牌挑击攻击力 : {value0}%
    # REMOVE: data0 = [0, 130, 151, 171, 192, 213, 234, 254, 275, 296, 317, 337, 358, 379, 399, 420, 441, 462, 482, 503, 524]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 浮空力比率 : {value1}%
    # REMOVE: data1 = [0, 450, 455, 459, 464, 468, 473, 477, 482, 486, 491, 495, 500, 504, 509, 513, 518, 522, 527, 531, 536]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 强踢
# knight/paladin/9dda3f4a849dba1a288dd65e116860f2
# 0ee8fa5dc525c1a1f23fc6911e921e4a/9dda3f4a849dba1a288dd65e116860f2
class Skill1(ActiveSkill):
    """
        使用脚踢攻击前方敌人， 威势之大甚至能够激起地上的沙石。\n
        沙石会使敌人进入失明和减速状态。 守护者在沙石的掩盖之下会增加回避率。\n
        [帝国的大竞技场中经常能够看到这个技能的身影。 虽然手段有些卑劣， 但是因为它的实用性， 即使是把名誉看的很重的骑士们也会使用。\n
        只有为了国家和君主愿意牺牲小我的人才是真正的骑士。]
    """
    name = "强踢"
    learnLv = 1
    masterLv = 60
    maxLv = 70
    position = 7 #TODO
    rangeLv = 2
    cd = 5
    mp = [2, 350]
    uuid = "9dda3f4a849dba1a288dd65e116860f2"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 脚踢攻击力 : {value0}%
    # REMOVE: data0 = [0, 2400, 2643, 2887, 3130, 3374, 3617, 3861, 4104, 4348, 4591, 4835, 5078, 5322, 5565, 5809, 6052, 6296, 6539, 6783, 7026, 7270, 7513, 7757, 8000, 8243, 8487, 8730, 8974, 9217, 9461, 9704, 9948, 10191, 10435, 10678, 10922, 11165, 11409, 11652, 11896, 12139, 12383, 12626, 12870, 13113, 13357, 13600, 13843, 14087, 14330, 14574, 14817, 15061, 15304, 15548, 15791, 16035, 16278, 16522, 16765, 17009, 17252, 17496, 17739, 17983, 18226, 18470, 18713, 18957, 19200]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 减速几率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 敌人移动速度减少 : {value2}%
    # REMOVE: data2 = [0, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 失明几率 : {value3}%
    # REMOVE: data3 = [0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 失明持续时间 : {value4}秒
    # REMOVE: data4 = [0, 1.5, 1.5, 1.5, 1.6, 1.6, 1.6, 1.7, 1.7, 1.7, 1.8, 1.8, 1.8, 1.9, 1.9, 1.9, 2, 2, 2, 2.1, 2.1, 2.1, 2.2, 2.2, 2.2, 2.3, 2.3, 2.3, 2.4, 2.4, 2.4, 2.5, 2.5, 2.5, 2.6, 2.6, 2.6, 2.7, 2.7, 2.7, 2.8, 2.8, 2.8, 2.9, 2.9, 2.9, 3, 3, 3, 3.1, 3.1, 3.2, 3.2, 3.2, 3.3, 3.3, 3.3, 3.4, 3.4, 3.4, 3.5, 3.5, 3.5, 3.6, 3.6, 3.6, 3.7, 3.7, 3.7, 3.8, 3.8]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 回避率增加 : {value5}%
    # REMOVE: data5 = [0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)

# 后跳
# knight/paladin/7822d6d52e10964a6755f142c666b494
# 0ee8fa5dc525c1a1f23fc6911e921e4a/7822d6d52e10964a6755f142c666b494
class Skill2(ActiveSkill):
    """
        使自身向后方小跳并避开敌人的攻击。
    """
    name = "后跳"
    learnLv = 1
    masterLv = 1
    maxLv = 1
    position = 3 #TODO
    rangeLv = 1
    mp = [1, 1]
    uuid = "7822d6d52e10964a6755f142c666b494"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501


# 基础精通
# knight/paladin/5a56514f35cf0270ae8d6c65f8fefd78
# 0ee8fa5dc525c1a1f23fc6911e921e4a/5a56514f35cf0270ae8d6c65f8fefd78
class Skill3(PassiveSkill):
    """
        增加基本攻击、 前冲攻击、 跳跃攻击的攻击力。\n
        在决斗场中， 增益/减益技能、 被动技能的技能攻击力增加效果对[基础精通]无影响。
    """
    name = "基础精通"
    learnLv = 1
    masterLv = 115
    maxLv = 200
    position = 1 #TODO
    rangeLv = 1
    uuid = "5a56514f35cf0270ae8d6c65f8fefd78"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 基本攻击力变化率 : {value0}%
    # REMOVE: data0 = [0, 150, 158.7, 167.3, 176, 184.5, 193.2, 201.8, 210.5, 219.2, 227.7, 236.4, 245, 253.7, 262.2, 270.9, 284.3, 297.6, 311, 324.3, 337.7, 350.9, 364.2, 377.6, 390.9, 404.3, 417.6, 431, 444.3, 457.7, 471, 484.2, 497.6, 510.9, 524.3, 537.6, 551, 564.3, 577.7, 591, 604.4, 617.7, 630.9, 644.3, 657.6, 671, 684.3, 697.7, 711, 724.4, 737.7, 751.1, 764.3, 777.6, 791, 804.3, 817.7, 831, 844.4, 857.7, 871.1, 884.4, 897.8, 911, 924.3, 937.7, 951, 964.4, 977.7, 991.1, 1004.4, 1017.8, 1031.1, 1044.5, 1057.7, 1071, 1084.4, 1097.7, 1111.1, 1124.4, 1137.8, 1151.1, 1164.5, 1177.8, 1191, 1204.4, 1217.7, 1231.1, 1244.4, 1257.8, 1271.1, 1284.5, 1297.8, 1311.2, 1324.5, 1337.7, 1351.1, 1364.4, 1377.8, 1391.1, 1404.5, 1417.8, 1431.2, 1444.5, 1457.9, 1471.2, 1484.6, 1497.9, 1511.3, 1524.6, 1538, 1551.3, 1564.7, 1578, 1591.4, 1604.7, 1618.1, 1631.4, 1644.8, 1658.1, 1671.5, 1684.8, 1698.2, 1711.5, 1724.9, 1738.2, 1751.6, 1764.9, 1778.3, 1791.6, 1805, 1818.3, 1831.7, 1845, 1858.4, 1871.7, 1885.1, 1898.4, 1911.8, 1925.1, 1938.5, 1951.8, 1965.2, 1978.5, 1991.9, 2005.2, 2018.6, 2031.9, 2045.3, 2058.6, 2072, 2085.3, 2098.7, 2112, 2125.4, 2138.7, 2152.1, 2165.4, 2178.8, 2192.1, 2205.5, 2218.8, 2232.2, 2245.5, 2258.9, 2272.2, 2285.6, 2298.9, 2312.3, 2325.6, 2339, 2352.3, 2365.7, 2379, 2392.4, 2405.7, 2419.1, 2432.4, 2445.8, 2459.1, 2472.5, 2485.8, 2499.2, 2512.5, 2525.9, 2539.2, 2552.6, 2565.9, 2579.3, 2592.6, 2606, 2619.3, 2632.7, 2646, 2659.4, 2672.7, 2686.1, 2699.4, 2712.8, 2726.1, 2739.5]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 前冲攻击力变化率 : {value1}%
    # REMOVE: data1 = [0, 150, 158.7, 167.3, 176, 184.5, 193.2, 201.8, 210.5, 219.2, 227.7, 236.4, 245, 253.7, 262.2, 270.9, 284.3, 297.6, 311, 324.3, 337.7, 350.9, 364.2, 377.6, 390.9, 404.3, 417.6, 431, 444.3, 457.7, 471, 484.2, 497.6, 510.9, 524.3, 537.6, 551, 564.3, 577.7, 591, 604.4, 617.7, 630.9, 644.3, 657.6, 671, 684.3, 697.7, 711, 724.4, 737.7, 751.1, 764.3, 777.6, 791, 804.3, 817.7, 831, 844.4, 857.7, 871.1, 884.4, 897.8, 911, 924.3, 937.7, 951, 964.4, 977.7, 991.1, 1004.4, 1017.8, 1031.1, 1044.5, 1057.7, 1071, 1084.4, 1097.7, 1111.1, 1124.4, 1137.8, 1151.1, 1164.5, 1177.8, 1191, 1204.4, 1217.7, 1231.1, 1244.4, 1257.8, 1271.1, 1284.5, 1297.8, 1311.2, 1324.5, 1337.7, 1351.1, 1364.4, 1377.8, 1391.1, 1404.5, 1417.8, 1431.2, 1444.5, 1457.9, 1471.2, 1484.6, 1497.9, 1511.3, 1524.6, 1538, 1551.3, 1564.7, 1578, 1591.4, 1604.7, 1618.1, 1631.4, 1644.8, 1658.1, 1671.5, 1684.8, 1698.2, 1711.5, 1724.9, 1738.2, 1751.6, 1764.9, 1778.3, 1791.6, 1805, 1818.3, 1831.7, 1845, 1858.4, 1871.7, 1885.1, 1898.4, 1911.8, 1925.1, 1938.5, 1951.8, 1965.2, 1978.5, 1991.9, 2005.2, 2018.6, 2031.9, 2045.3, 2058.6, 2072, 2085.3, 2098.7, 2112, 2125.4, 2138.7, 2152.1, 2165.4, 2178.8, 2192.1, 2205.5, 2218.8, 2232.2, 2245.5, 2258.9, 2272.2, 2285.6, 2298.9, 2312.3, 2325.6, 2339, 2352.3, 2365.7, 2379, 2392.4, 2405.7, 2419.1, 2432.4, 2445.8, 2459.1, 2472.5, 2485.8, 2499.2, 2512.5, 2525.9, 2539.2, 2552.6, 2565.9, 2579.3, 2592.6, 2606, 2619.3, 2632.7, 2646, 2659.4, 2672.7, 2686.1, 2699.4, 2712.8, 2726.1, 2739.5]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 跳跃攻击力变化率 : {value2}%
    # REMOVE: data2 = [0, 150, 158.7, 167.3, 176, 184.5, 193.2, 201.8, 210.5, 219.2, 227.7, 236.4, 245, 253.7, 262.2, 270.9, 284.3, 297.6, 311, 324.3, 337.7, 350.9, 364.2, 377.6, 390.9, 404.3, 417.6, 431, 444.3, 457.7, 471, 484.2, 497.6, 510.9, 524.3, 537.6, 551, 564.3, 577.7, 591, 604.4, 617.7, 630.9, 644.3, 657.6, 671, 684.3, 697.7, 711, 724.4, 737.7, 751.1, 764.3, 777.6, 791, 804.3, 817.7, 831, 844.4, 857.7, 871.1, 884.4, 897.8, 911, 924.3, 937.7, 951, 964.4, 977.7, 991.1, 1004.4, 1017.8, 1031.1, 1044.5, 1057.7, 1071, 1084.4, 1097.7, 1111.1, 1124.4, 1137.8, 1151.1, 1164.5, 1177.8, 1191, 1204.4, 1217.7, 1231.1, 1244.4, 1257.8, 1271.1, 1284.5, 1297.8, 1311.2, 1324.5, 1337.7, 1351.1, 1364.4, 1377.8, 1391.1, 1404.5, 1417.8, 1431.2, 1444.5, 1457.9, 1471.2, 1484.6, 1497.9, 1511.3, 1524.6, 1538, 1551.3, 1564.7, 1578, 1591.4, 1604.7, 1618.1, 1631.4, 1644.8, 1658.1, 1671.5, 1684.8, 1698.2, 1711.5, 1724.9, 1738.2, 1751.6, 1764.9, 1778.3, 1791.6, 1805, 1818.3, 1831.7, 1845, 1858.4, 1871.7, 1885.1, 1898.4, 1911.8, 1925.1, 1938.5, 1951.8, 1965.2, 1978.5, 1991.9, 2005.2, 2018.6, 2031.9, 2045.3, 2058.6, 2072, 2085.3, 2098.7, 2112, 2125.4, 2138.7, 2152.1, 2165.4, 2178.8, 2192.1, 2205.5, 2218.8, 2232.2, 2245.5, 2258.9, 2272.2, 2285.6, 2298.9, 2312.3, 2325.6, 2339, 2352.3, 2365.7, 2379, 2392.4, 2405.7, 2419.1, 2432.4, 2445.8, 2459.1, 2472.5, 2485.8, 2499.2, 2512.5, 2525.9, 2539.2, 2552.6, 2565.9, 2579.3, 2592.6, 2606, 2619.3, 2632.7, 2646, 2659.4, 2672.7, 2686.1, 2699.4, 2712.8, 2726.1, 2739.5]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 受身蹲伏
# knight/paladin/ce26c6b69d02a440a81b552bec94f03b
# 0ee8fa5dc525c1a1f23fc6911e921e4a/ce26c6b69d02a440a81b552bec94f03b
class Skill4(ActiveSkill):
    """
        使自身在倒地状态下迅速起身并采取蹲伏姿势； 蹲伏状态下， 自身会进入无敌状态， 效果持续一定时间。
    """
    name = "受身蹲伏"
    learnLv = 1
    masterLv = 10
    maxLv = 20
    position = 2 #TODO
    rangeLv = 1
    cd = 5
    mp = [1, 1]
    uuid = "ce26c6b69d02a440a81b552bec94f03b"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 蹲伏姿势最短无敌时间 : {value0}秒
    # REMOVE: data0 = [0, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 蹲伏姿势最长无敌时间 : {value1}秒
    # REMOVE: data1 = [0, 3, 4.5, 6, 7.5, 9, 10.5, 12, 13.5, 15, 16.5, 18, 19.5, 21, 22.5, 24, 25.5, 27, 28.5, 30, 31.5]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 起身时霸体时间 : {value2}秒
    # REMOVE: data2 = [0, 0.3, 0.33, 0.36, 0.4, 0.43, 0.46, 0.5, 0.53, 0.56, 0.6, 0.63, 0.66, 0.7, 0.73, 0.76, 0.8, 0.83, 0.86, 0.9, 0.93]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 防具精通
# knight/paladin/892ef624d8bf3d7fc045f84825fd6104
# 0ee8fa5dc525c1a1f23fc6911e921e4a/892ef624d8bf3d7fc045f84825fd6104
class Skill5(PassiveSkill):
    """
        穿戴防具时， 可以增加各种属性。\n
        穿戴的防具越多， 效果越强； 可根据转职， 增加不同的属性种类及数值。
    """
    name = "防具精通"
    learnLv = 1
    masterLv = 1
    maxLv = 1
    position = 0 #TODO
    rangeLv = 1
    uuid = "892ef624d8bf3d7fc045f84825fd6104"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501


# 盾击
# knight/paladin/717f1e2104fe4b796f800352fa143ecc
# 0ee8fa5dc525c1a1f23fc6911e921e4a/717f1e2104fe4b796f800352fa143ecc
class Skill6(ActiveSkill):
    """
        挥舞盾牌对敌人进行强力攻击， 并使其进入眩晕状态。\n
        追加操作时可以提起盾牌向前突进。\n
        [厚重的盾牌本身就是一件强大的武器。 但如果你没有足够的力量的话还是放弃这个想法吧。]
    """
    name = "盾击"
    learnLv = 5
    masterLv = 60
    maxLv = 70
    position = 2 #TODO
    rangeLv = 2
    cd = 3
    mp = [5, 180]
    uuid = "717f1e2104fe4b796f800352fa143ecc"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 挥击攻击力 : {value0}%
    # REMOVE: data0 = [0, 1028, 1132, 1237, 1341, 1445, 1549, 1654, 1758, 1862, 1967, 2071, 2175, 2279, 2384, 2488, 2592, 2697, 2801, 2905, 3010, 3114, 3218, 3322, 3427, 3531, 3635, 3740, 3844, 3948, 4052, 4157, 4261, 4365, 4470, 4574, 4678, 4782, 4887, 4991, 5095, 5200, 5304, 5408, 5512, 5617, 5721, 5825, 5930, 6034, 6138, 6242, 6347, 6451, 6555, 6660, 6764, 6868, 6973, 7077, 7181, 7285, 7390, 7494, 7598, 7703, 7807, 7911, 8015, 8120, 8224]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 眩晕几率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 眩晕持续时间 : {value2}秒
    # REMOVE: data2 = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 追加操作时突进攻击力 : {value3}%
    # REMOVE: data3 = [0, 1028, 1132, 1237, 1341, 1445, 1549, 1654, 1758, 1862, 1967, 2071, 2175, 2279, 2384, 2488, 2592, 2697, 2801, 2905, 3010, 3114, 3218, 3322, 3427, 3531, 3635, 3740, 3844, 3948, 4052, 4157, 4261, 4365, 4470, 4574, 4678, 4782, 4887, 4991, 5095, 5200, 5304, 5408, 5512, 5617, 5721, 5825, 5930, 6034, 6138, 6242, 6347, 6451, 6555, 6660, 6764, 6868, 6973, 7077, 7181, 7285, 7390, 7494, 7598, 7703, 7807, 7911, 8015, 8120, 8224]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

# 命运之轮
# knight/paladin/4655101518604f874721b3cc249aae10
# 0ee8fa5dc525c1a1f23fc6911e921e4a/4655101518604f874721b3cc249aae10
class Skill7(ActiveSkill):
    """
        使用盾牌将敌人拉过来后， 将其挑至空中禁锢在命运之轮中。\n
        对无法抓取的敌人不适用控制效果。\n
        转职为混沌魔灵或龙骑士后， 技能类型变为独立攻击力。\n
        [命运之轮开始旋转了。]
    """
    name = "命运之轮"
    learnLv = 5
    masterLv = 60
    maxLv = 70
    position = 6 #TODO
    rangeLv = 2
    cd = 8
    mp = [5, 249]
    uuid = "4655101518604f874721b3cc249aae10"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 拉扯攻击力 : {value0}%
    # REMOVE: data0 = [0, 1333, 1468, 1603, 1738, 1873, 2008, 2144, 2279, 2414, 2549, 2684, 2820, 2955, 3090, 3225, 3360, 3495, 3631, 3766, 3901, 4036, 4171, 4307, 4442, 4577, 4712, 4847, 4982, 5118, 5253, 5388, 5523, 5658, 5794, 5929, 6064, 6199, 6334, 6469, 6605, 6740, 6875, 7010, 7145, 7281, 7416, 7551, 7686, 7821, 7957, 8092, 8227, 8362, 8497, 8632, 8768, 8903, 9038, 9173, 9308, 9444, 9579, 9714, 9849, 9984, 10119, 10255, 10390, 10525, 10660]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 挑飞攻击力 : {value1}%
    # REMOVE: data1 = [0, 2856, 3146, 3436, 3726, 4016, 4305, 4595, 4885, 5175, 5465, 5754, 6044, 6334, 6624, 6914, 7203, 7493, 7783, 8073, 8362, 8652, 8942, 9232, 9522, 9811, 10101, 10391, 10681, 10971, 11260, 11550, 11840, 12130, 12419, 12709, 12999, 13289, 13579, 13868, 14158, 14448, 14738, 15028, 15317, 15607, 15897, 16187, 16477, 16766, 17056, 17346, 17636, 17925, 18215, 18505, 18795, 19085, 19374, 19664, 19954, 20244, 20534, 20823, 21113, 21403, 21693, 21982, 22272, 22562, 22852]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 命运之轮持续时间 : {value2}秒
    # REMOVE: data2 = [0, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 自动防御
# knight/paladin/f2fb27162beb0b87a7cb9af7900e95f2
# 0ee8fa5dc525c1a1f23fc6911e921e4a/f2fb27162beb0b87a7cb9af7900e95f2
class Skill8(PassiveSkill):
    """
        学习此技能后， 在任何情况下都有几率抵挡敌人的攻击并降低所受伤害。\n
        [利剑和盾牌从来都不是骑士们杀伐的理由， 因为他们知道在利剑和盾牌的后面有着他们要保护的人。]
    """
    name = "自动防御"
    learnLv = 5
    masterLv = 10
    maxLv = 20
    position = 0 #TODO
    rangeLv = 5
    mp = [5, 250]
    uuid = "f2fb27162beb0b87a7cb9af7900e95f2"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 格挡几率 : {value0}%
    # REMOVE: data0 = [0, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 100, 100, 100, 100]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 格挡成功时所受伤害减少率 : {value1}%
    # REMOVE: data1 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 发动后的冷却时间 : {value2}秒
    # REMOVE: data2 = [0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 致命突刺
# knight/paladin/eb71e1d82d92c7e1d40500a0dcd77aa6
# 0ee8fa5dc525c1a1f23fc6911e921e4a/eb71e1d82d92c7e1d40500a0dcd77aa6
class Skill9(ActiveSkill):
    """
        对敌人施放强力的刺击。\n
        蓄气后发动， 可以增加攻击力、 突刺距离和范围。\n
        [原本为帝国贵族剑士所掌握的剑术。 帝国皇帝为了提升骑士团的战斗力， “奉劝”贵族们将秘传剑术传授给骑士们。 迫于压力， 贵族剑士只好将一些初级剑术传授给了骑士团。]
    """
    name = "致命突刺"
    learnLv = 10
    masterLv = 60
    maxLv = 70
    position = 7 #TODO
    rangeLv = 2
    cd = 3
    mp = [6, 250]
    uuid = "eb71e1d82d92c7e1d40500a0dcd77aa6"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 623, 686, 749, 812, 875, 938, 1002, 1065, 1128, 1191, 1254, 1317, 1381, 1444, 1507, 1570, 1633, 1696, 1760, 1823, 1886, 1949, 2012, 2075, 2138, 2202, 2265, 2328, 2391, 2454, 2517, 2581, 2644, 2707, 2770, 2833, 2896, 2960, 3023, 3086, 3149, 3212, 3275, 3339, 3402, 3465, 3528, 3591, 3654, 3718, 3781, 3844, 3907, 3970, 4033, 4096, 4160, 4223, 4286, 4349, 4412, 4475, 4539, 4602, 4665, 4728, 4791, 4854, 4918, 4981]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 最大蓄气时攻击力 : {value1}%
    # REMOVE: data1 = [0, 778, 857, 936, 1015, 1094, 1173, 1252, 1330, 1409, 1488, 1567, 1646, 1725, 1804, 1883, 1962, 2041, 2120, 2199, 2278, 2357, 2435, 2514, 2593, 2672, 2751, 2830, 2909, 2988, 3067, 3146, 3225, 3304, 3383, 3462, 3540, 3619, 3698, 3777, 3856, 3935, 4014, 4093, 4172, 4251, 4330, 4409, 4488, 4567, 4645, 4724, 4803, 4882, 4961, 5040, 5119, 5198, 5277, 5356, 5435, 5514, 5593, 5672, 5750, 5829, 5908, 5987, 6066, 6145, 6224]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 蓄气时间上限 : {value2}秒
    # REMOVE: data2 = [0, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 攻击范围比率 : {value3}% ~ {value4}%
    # REMOVE: data3 = [0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # REMOVE: data4 = [0, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 跳斩
# knight/paladin/c9664191611af31142e052dfaef84530
# 0ee8fa5dc525c1a1f23fc6911e921e4a/c9664191611af31142e052dfaef84530
class Skill10(ActiveSkill):
    """
        向前方跳跃劈砍敌人。\n
        对倒地状态的敌人造成控制效果和更高的伤害。\n
        对无法抓取的敌人不适用控制效果。\n
        [这是骑士们在战场上寻找装死敌人时的常用技能， 可以让那些丧失抵抗能力的人毫无痛苦地死去。 怜悯， 也是骑士的美德之一。]
    """
    name = "跳斩"
    learnLv = 10
    masterLv = 60
    maxLv = 70
    position = 4 #TODO
    rangeLv = 2
    cd = 4
    mp = [7, 250]
    uuid = "c9664191611af31142e052dfaef84530"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 劈砍攻击力 : {value0}
    # REMOVE: data0 = [0, 2186, 2408, 2630, 2851, 3073, 3295, 3517, 3738, 3960, 4182, 4404, 4625, 4847, 5069, 5291, 5513, 5734, 5956, 6178, 6400, 6621, 6843, 7065, 7287, 7508, 7730, 7952, 8174, 8396, 8617, 8839, 9061, 9283, 9504, 9726, 9948, 10170, 10391, 10613, 10835, 11057, 11278, 11500, 11722, 11944, 12166, 12387, 12609, 12831, 13053, 13274, 13496, 13718, 13940, 14161, 14383, 14605, 14827, 15049, 15270, 15492, 15714, 15936, 16157, 16379, 16601, 16823, 17044, 17266, 17488]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 对倒地状态的敌人的攻击力增加率 : {value1}%
    # REMOVE: data1 = [0, 121, 123, 126, 128, 129, 132, 134, 137, 138, 140, 143, 145, 146, 149, 151, 154, 155, 157, 160, 162, 163, 166, 168, 171, 172, 174, 177, 179, 180, 183, 185, 188, 189, 191, 194, 196, 197, 200, 202, 204, 206, 208, 211, 213, 214, 217, 219, 221, 223, 225, 227, 230, 231, 234, 236, 238, 240, 242, 244, 247, 248, 250, 253, 255, 257, 259, 261, 263, 265, 267]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 飞跃截击
# knight/paladin/cfacda0647b9a0f595df2c2aad30c18d
# 0ee8fa5dc525c1a1f23fc6911e921e4a/cfacda0647b9a0f595df2c2aad30c18d
class Skill11(ActiveSkill):
    """
        快速的跳向空中的敌人， 并用盾牌将其击落， 并产生冲击波。\n
        [拿着厚重的盾牌， 怎么会跳得这样轻盈？]
    """
    name = "飞跃截击"
    learnLv = 10
    masterLv = 60
    maxLv = 70
    position = 1 #TODO
    rangeLv = 2
    cd = 3
    mp = [10, 220]
    uuid = "cfacda0647b9a0f595df2c2aad30c18d"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 挥击攻击力 : {value0}
    # REMOVE: data0 = [0, 1428, 1573, 1718, 1863, 2007, 2152, 2297, 2442, 2587, 2732, 2877, 3022, 3166, 3311, 3456, 3601, 3746, 3891, 4036, 4181, 4325, 4470, 4615, 4760, 4905, 5050, 5195, 5339, 5484, 5629, 5774, 5919, 6064, 6209, 6354, 6498, 6643, 6788, 6933, 7078, 7223, 7368, 7513, 7657, 7802, 7947, 8092, 8237, 8382, 8527, 8671, 8816, 8961, 9106, 9251, 9396, 9541, 9686, 9830, 9975, 10120, 10265, 10410, 10555, 10700, 10845, 10989, 11134, 11279, 11424]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 冲击波攻击力 : {value1}
    # REMOVE: data1 = [0, 1184, 1304, 1425, 1545, 1665, 1785, 1905, 2025, 2145, 2266, 2386, 2506, 2626, 2746, 2866, 2986, 3106, 3227, 3347, 3467, 3587, 3707, 3827, 3947, 4068, 4188, 4308, 4428, 4548, 4668, 4788, 4909, 5029, 5149, 5269, 5389, 5509, 5629, 5750, 5870, 5990, 6110, 6230, 6350, 6470, 6591, 6711, 6831, 6951, 7071, 7191, 7311, 7432, 7552, 7672, 7792, 7912, 8032, 8152, 8273, 8393, 8513, 8633, 8753, 8873, 8993, 9114, 9234, 9354, 9474]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 冲击波范围 : {value2}%
    # REMOVE: data2 = [0, 133, 136, 137, 139, 142, 143, 145, 146, 149, 151, 152, 155, 156, 159, 161, 162, 165, 166, 168, 171, 172, 174, 175, 178, 180, 182, 184, 185, 188, 190, 191, 194, 195, 197, 200, 201, 203, 204, 207, 209, 211, 213, 214, 217, 219, 220, 223, 224, 226, 229, 230, 232, 234, 236, 238, 240, 242, 243, 246, 248, 249, 252, 253, 255, 258, 259, 261, 263, 265, 267]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 强化 - 后跳
# knight/paladin/2b340542e776818b78f3212af184bd6b
# 0ee8fa5dc525c1a1f23fc6911e921e4a/2b340542e776818b78f3212af184bd6b
class Skill12(PassiveSkill):
    """
    施放技能期间、 被击或倒地的状态下， 可以施放无敌状态的[后跳]。\n
    该能力适用与[后跳]不同的冷却时间， 并且不受冷却时间减少效果的影响。\n
    根据施放情况的不同(强制中断技能和被敌人攻击)， 进入不同冷却时间。\n
    无法强制中断觉醒技能和跳跃超过一定高度的技能。
    """
    name = "强化 - 后跳"
    learnLv = 10
    masterLv = 1
    maxLv = 1
    position = 4 #TODO
    rangeLv = 1
    cd = 30
    uuid = "2b340542e776818b78f3212af184bd6b"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 强制中断技能时的冷却时间 : {value0}秒
    # REMOVE: data0 = [0, 40]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 被击或倒地期间施放时的冷却时间 : {value1}秒
    # REMOVE: data1 = [0, 30]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 跃翔
# knight/paladin/1fea5a626f15230237946a11a9d11582
# 0ee8fa5dc525c1a1f23fc6911e921e4a/1fea5a626f15230237946a11a9d11582
class Skill13(ActiveSkill):
    """
        增加自身20%的跳跃力， 效果持续一定时间。\n
        效果持续期间内， 再次按技能键可以结束。
    """
    name = "跃翔"
    learnLv = 10
    masterLv = 1
    maxLv = 1
    position = 6 #TODO
    rangeLv = 3
    cd = 5
    mp = [13, 13]
    uuid = "1fea5a626f15230237946a11a9d11582"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 持续时间 : {value0}秒
    # REMOVE: data0 = [0, 20]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)

# 破武之轮
# knight/paladin/01c3a2fb793d293a25ed8dc7a0d70c1a
# 0ee8fa5dc525c1a1f23fc6911e921e4a/01c3a2fb793d293a25ed8dc7a0d70c1a
class Skill14(ActiveSkill):
    """
        挥剑向前方发射齿轮状的剑气。\n
        被击中的敌人会在一段时间内进入破武器状态。\n
        长按技能键可以蓄气施放， 蓄气时间越长， 破武器效果持续时间越长。\n
    [转职为精灵骑士后附加效果]\n
        始终具有最大蓄气效果。\n
        [冷风吹的越强， 行人却将围巾裹得越严实。\n
        而温暖的阳光照耀下来， 行人很快就把围巾拿掉了。]
    """
    name = "破武之轮"
    learnLv = 15
    masterLv = 60
    maxLv = 70
    position = 8 #TODO
    rangeLv = 2
    cd = 6
    mp = [9, 250]
    uuid = "01c3a2fb793d293a25ed8dc7a0d70c1a"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 蓄气时间上限 : {value0}秒
    # REMOVE: data0 = [0, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 挥剑攻击力 : {value1}%
    # REMOVE: data1 = [0, 1601, 1763, 1925, 2088, 2250, 2412, 2575, 2737, 2899, 3062, 3224, 3387, 3549, 3711, 3874, 4036, 4198, 4361, 4523, 4686, 4848, 5010, 5173, 5335, 5497, 5660, 5822, 5985, 6147, 6309, 6472, 6634, 6796, 6959, 7121, 7283, 7446, 7608, 7771, 7933, 8095, 8258, 8420, 8582, 8745, 8907, 9070, 9232, 9394, 9557, 9719, 9881, 10044, 10206, 10368, 10531, 10693, 10856, 11018, 11180, 11343, 11505, 11667, 11830, 11992, 12155, 12317, 12479, 12642, 12804]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 剑气攻击力 : {value2}%
    # REMOVE: data2 = [0, 3201, 3526, 3851, 4176, 4501, 4825, 5150, 5475, 5800, 6125, 6449, 6774, 7099, 7424, 7749, 8073, 8398, 8723, 9048, 9372, 9697, 10022, 10347, 10672, 10996, 11321, 11646, 11971, 12296, 12620, 12945, 13270, 13595, 13920, 14244, 14569, 14894, 15219, 15543, 15868, 16193, 16518, 16843, 17167, 17492, 17817, 18142, 18467, 18791, 19116, 19441, 19766, 20091, 20415, 20740, 21065, 21390, 21714, 22039, 22364, 22689, 23014, 23338, 23663, 23988, 24313, 24638, 24962, 25287, 25612]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 最小蓄气时破武器效果持续时间 : {value3}秒
    # REMOVE: data3 = [0, 1.5, 1.55, 1.6, 1.65, 1.7, 1.75, 1.8, 1.85, 1.9, 1.95, 2, 2.04, 2.1, 2.15, 2.2, 2.25, 2.3, 2.35, 2.4, 2.45, 2.5, 2.55, 2.6, 2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3, 3.05, 3.1, 3.15, 3.2, 3.25, 3.3, 3.35, 3.4, 3.45, 3.5, 3.55, 3.6, 3.65, 3.7, 3.75, 3.8, 3.85, 3.9, 3.95, 4, 4.05, 4.09, 4.15, 4.2, 4.25, 4.3, 4.35, 4.4, 4.45, 4.5, 4.55, 4.6, 4.65, 4.7, 4.75, 4.8, 4.85, 4.9, 4.95]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 最大蓄气时破武器效果持续时间 : {value4}秒
    # REMOVE: data4 = [0, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.09, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.19, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 破武器几率 : {value5}%
    # REMOVE: data5 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)
    # 破武器效果的敌人攻击力减少 : {value6}%
    # REMOVE: data6 = [0, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300]# noqa: E501
    data6 = get_data(f'{prefix}/{uuid}', 6)
    # [范围信息]
    # 剑气大小比率 : {value7}%
    # REMOVE: data7 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data7 = get_data(f'{prefix}/{uuid}', 7)

# 天使降临
# knight/paladin/2a0a39184de92acf1c1375e00b77404c
# 0ee8fa5dc525c1a1f23fc6911e921e4a/2a0a39184de92acf1c1375e00b77404c
class Skill15(PassiveSkill):
    """
        将天界之光降临到武器和盾牌上， 对武器赋予光属性。 同时， 帕拉丁的战斗动作发生变化并增加物理攻击力。 盾牌朝前方时， 受到攻击时不会倒地， 同时增加物理/魔法防御力。\n
        防御成功时进入霸体状态， 效果持续一定时间。\n
        被攻击增加的防御力在施放[圣盾]、 [神光庇护]时不适用。\n
        在决斗场中， 不适用前方防御和光属性赋予功能。
    """
    name = "天使降临"
    learnLv = 15
    masterLv = 10
    maxLv = 20
    position = 0 #TODO
    rangeLv = 3
    uuid = "2a0a39184de92acf1c1375e00b77404c"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 物理/魔法防御力增加 : {value0}
    # REMOVE: data0 = [0, 6520, 7244, 7969, 8693, 9418, 10142, 10867, 11591, 12316, 13040, 13764, 14489, 15213, 15938, 16662, 17387, 18111, 18836, 19560, 20284]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 物理攻击力增加率 : {value1}%
    # REMOVE: data1 = [0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 霸体持续时间 : {value2}秒
    # REMOVE: data2 = [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 天使光翼
# knight/paladin/9dc8438e4572d39243c97da31c113acc
# 0ee8fa5dc525c1a1f23fc6911e921e4a/9dc8438e4572d39243c97da31c113acc
class Skill16(PassiveSkill):
    """
        增加攻击力， 并减少技能冷却时间， 但1、 2、 3次觉醒技能除外。 同时， 自身受到的有形或无形的威胁吸收为光翼形态的能量， 然后消耗能量对自身和队友施加各种效果。\n
    [获得天使之翼]\n
    - 天使之翼攻击成功时\n
    - \n
    - 地图上有被[神光冲击]击中的敌人且自身处于防御状态时\n
    [效果发动方式]\n
    - 施放技能时， 按住技能键一定时间， 可以将天使光翼的能量注入技能并发动效果。\n
    [发动的效果]\n
    - [神光冲击] : 将敌人吸附到攻击地点。 此时， 根据消耗资源的阶段， 增加吸附范围。\n
    - 转职后攻击技能 : 触发增益效果， 增加自身和队友的攻击速度、 移动速度、 施放速度、 暴击率和命中率。 根据消耗资源的阶段， 增加增益效果持续时间。\n
    - [神光庇护] : 新增恢复自身和圣域内队友生命值的效果。 根据消耗资源的阶段， 增加生命值恢复量。\n
    [学习戒律后]\n
        进入地下城时， 天使光翼获得量增加2个。\n
    [学习荣耀之光后]\n
    - 进入地下城时， 天使光翼获得量增加4个。\n
    [学习超越之翼后]\n
    - 进入地下城时， 天使光翼获得量增加2个。 额外增加2个光翼， 最多可以拥有8个光翼。 在拥有7个及以上光翼的状态下， 发动[天使光翼]时， 效果中增加减少队友所受伤害的功能。\n
    (所受伤害减少效果不与[圣盾]、 [神光庇护]的伤害减少效果叠加)
    """
    name = "天使光翼"
    learnLv = 15
    masterLv = 10
    maxLv = 20
    position = 1 #TODO
    rangeLv = 3
    uuid = "9dc8438e4572d39243c97da31c113acc"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 物理攻击力增加率 : {value0}%
    # REMOVE: data0 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 技能冷却时间减少率 : {value1}%
    # REMOVE: data1 = [0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # [吸附范围]
    # 第1阶段 : {value2}px
    # REMOVE: data2 = [0, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 第2阶段 : {value3}px
    # REMOVE: data3 = [0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 第3阶段 : {value4}px
    # REMOVE: data4 = [0, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 第4阶段 : {value5}px
    # REMOVE: data5 = [0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)
    # 第5阶段 : {value6}px
    # REMOVE: data6 = [0, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167]# noqa: E501
    data6 = get_data(f'{prefix}/{uuid}', 6)
    # 第6阶段 : {value7}px
    # REMOVE: data7 = [0, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250]# noqa: E501
    data7 = get_data(f'{prefix}/{uuid}', 7)
    # [效果]
    # 攻击速度增加 : {value8}%
    # REMOVE: data8 = [0, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32, 32.5, 33, 33.5, 34, 34.5, 35]# noqa: E501
    data8 = get_data(f'{prefix}/{uuid}', 8)
    # 移动速度增加 : {value9}%
    # REMOVE: data9 = [0, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32, 32.5, 33, 33.5, 34, 34.5, 35]# noqa: E501
    data9 = get_data(f'{prefix}/{uuid}', 9)
    # 施放速度增加 : {value10}%
    # REMOVE: data10 = [0, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32, 32.5, 33, 33.5, 34, 34.5, 35]# noqa: E501
    data10 = get_data(f'{prefix}/{uuid}', 10)
    # 暴击率增加 : {value11}%
    # REMOVE: data11 = [0, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32, 32.5, 33, 33.5, 34, 34.5, 35]# noqa: E501
    data11 = get_data(f'{prefix}/{uuid}', 11)
    # 命中率增加 : {value12}%
    # REMOVE: data12 = [0, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32, 32.5, 33, 33.5, 34, 34.5, 35]# noqa: E501
    data12 = get_data(f'{prefix}/{uuid}', 12)
    # 队友攻击速度增加 : {value13}%
    # REMOVE: data13 = [0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]# noqa: E501
    data13 = get_data(f'{prefix}/{uuid}', 13)
    # 队友移动速度增加 : {value14}%
    # REMOVE: data14 = [0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]# noqa: E501
    data14 = get_data(f'{prefix}/{uuid}', 14)
    # 队友施放速度增加 : {value15}%
    # REMOVE: data15 = [0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]# noqa: E501
    data15 = get_data(f'{prefix}/{uuid}', 15)
    # 队友暴击率增加 : {value16}%
    # REMOVE: data16 = [0, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32, 32.5, 33, 33.5, 34, 34.5, 35]# noqa: E501
    data16 = get_data(f'{prefix}/{uuid}', 16)
    # 队友命中率增加 : {value17}%
    # REMOVE: data17 = [0, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32, 32.5, 33, 33.5, 34, 34.5, 35]# noqa: E501
    data17 = get_data(f'{prefix}/{uuid}', 17)
    # [效果持续时间]
    # 第1阶段 : {value18}秒
    # REMOVE: data18 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data18 = get_data(f'{prefix}/{uuid}', 18)
    # 第2阶段 : {value19}秒
    # REMOVE: data19 = [0, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5]# noqa: E501
    data19 = get_data(f'{prefix}/{uuid}', 19)
    # 第3阶段 : {value20}秒
    # REMOVE: data20 = [0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]# noqa: E501
    data20 = get_data(f'{prefix}/{uuid}', 20)
    # 第4阶段 : {value21}秒
    # REMOVE: data21 = [0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25]# noqa: E501
    data21 = get_data(f'{prefix}/{uuid}', 21)
    # 第5阶段 : {value22}秒
    # REMOVE: data22 = [0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40]# noqa: E501
    data22 = get_data(f'{prefix}/{uuid}', 22)
    # 第6阶段 : {value23}秒
    # REMOVE: data23 = [0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60]# noqa: E501
    data23 = get_data(f'{prefix}/{uuid}', 23)
    # [每秒生命值恢复率]
    # 第1阶段 : {value24}%
    # REMOVE: data24 = [0, 3.3, 6.6, 10, 13.3, 16.7, 20, 23.3, 26.7, 30, 33.4, 36.7, 40, 43.4, 46.7, 50.1, 53.4, 56.7, 60.1, 63.4, 66.8]# noqa: E501
    data24 = get_data(f'{prefix}/{uuid}', 24)
    # 第2阶段 : {value25}%
    # REMOVE: data25 = [0, 4.1, 8.3, 12.5, 16.6, 20.8, 25, 29.1, 33.3, 37.5, 41.6, 45.8, 50, 54.2, 58.3, 62.5, 66.7, 70.8, 75, 79.2, 83.3]# noqa: E501
    data25 = get_data(f'{prefix}/{uuid}', 25)
    # 第3阶段 : {value26}%
    # REMOVE: data26 = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]# noqa: E501
    data26 = get_data(f'{prefix}/{uuid}', 26)
    # 第4阶段 : {value27}%
    # REMOVE: data27 = [0, 8.3, 16.6, 25, 33.3, 41.6, 50, 58.3, 66.7, 75, 83.3, 91.7, 100, 108.4, 116.7, 125.1, 133.4, 141.7, 150.1, 158.4, 166.7]# noqa: E501
    data27 = get_data(f'{prefix}/{uuid}', 27)
    # 第5阶段 : {value28}%
    # REMOVE: data28 = [0, 13.3, 26.6, 40, 53.3, 66.7, 80, 93.3, 106.7, 120, 133.4, 146.7, 160, 173.4, 186.7, 200.1, 213.4, 226.7, 240.1, 253.4, 266.8]# noqa: E501
    data28 = get_data(f'{prefix}/{uuid}', 28)
    # 第6阶段 : {value29}%
    # REMOVE: data29 = [0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400]# noqa: E501
    data29 = get_data(f'{prefix}/{uuid}', 29)
    # [神圣意志 : 大天使降临]生命值恢复效率 : {value30}%
    # REMOVE: data30 = [0, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300]# noqa: E501
    data30 = get_data(f'{prefix}/{uuid}', 30)
    # [队友所受伤害减少率]
    # 拥有7个天使光翼时 : 5%
    # 拥有8个天使光翼时 : 10%

# 神光冲击
# knight/paladin/3fb8395ae3b81bd608e0c4223a8eb534
# 0ee8fa5dc525c1a1f23fc6911e921e4a/3fb8395ae3b81bd608e0c4223a8eb534
class Skill17(ActiveSkill):
    """
        用武器捶打地面， 震荡起神光波纹。\n
        [神光冲击]攻击成功时， 可以获得少量天使光翼， 同时被击中的敌人会进入被挑衅状态， 集中攻击施放者。
    """
    name = "神光冲击"
    learnLv = 15
    masterLv = 60
    maxLv = 70
    position = 3 #TODO
    rangeLv = 2
    cd = 4
    mp = [30, 300]
    uuid = "3fb8395ae3b81bd608e0c4223a8eb534"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 5928, 6529, 7131, 7732, 8334, 8935, 9536, 10138, 10739, 11341, 11942, 12543, 13145, 13746, 14347, 14949, 15550, 16152, 16753, 17354, 17956, 18557, 19159, 19760, 20361, 20963, 21564, 22166, 22767, 23368, 23970, 24571, 25173, 25774, 26375, 26977, 27578, 28179, 28781, 29382, 29984, 30585, 31186, 31788, 32389, 32991, 33592, 34193, 34795, 35396, 35998, 36599, 37200, 37802, 38403, 39005, 39606, 40207, 40809, 41410, 42011, 42613, 43214, 43816, 44417, 45018, 45620, 46221, 46823, 47424]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 挑衅持续时间 : {value1}秒
    # REMOVE: data1 = [0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 攻击成功时天使光翼获得量 : {value2}
    # REMOVE: data2 = [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 攻击范围比率 : {value3}%
    # REMOVE: data3 = [0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

# 神光连击
# knight/paladin/5806440d21e7546d50007a5ba11f8024
# 0ee8fa5dc525c1a1f23fc6911e921e4a/5806440d21e7546d50007a5ba11f8024
class Skill18(ActiveSkill):
    """
        左右挥舞光之武器攻击敌人。\n
        按向前方向键， 可以向前移动并进行攻击。
    """
    name = "神光连击"
    learnLv = 15
    masterLv = 60
    maxLv = 70
    position = 6 #TODO
    rangeLv = 2
    cd = 5
    mp = [30, 300]
    uuid = "5806440d21e7546d50007a5ba11f8024"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 第1击攻击力 : {value0}%
    # REMOVE: data0 = [0, 3925, 4323, 4721, 5120, 5518, 5916, 6314, 6712, 7111, 7509, 7907, 8305, 8703, 9101, 9500, 9898, 10296, 10694, 11092, 11491, 11889, 12287, 12685, 13083, 13482, 13880, 14278, 14676, 15074, 15472, 15871, 16269, 16667, 17065, 17463, 17862, 18260, 18658, 19056, 19454, 19853, 20251, 20649, 21047, 21445, 21843, 22242, 22640, 23038, 23436, 23834, 24233, 24631, 25029, 25427, 25825, 26224, 26622, 27020, 27418, 27816, 28214, 28613, 29011, 29409, 29807, 30205, 30604, 31002, 31400]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 第2击攻击力 : {value1}%
    # REMOVE: data1 = [0, 3925, 4323, 4721, 5120, 5518, 5916, 6314, 6712, 7111, 7509, 7907, 8305, 8703, 9101, 9500, 9898, 10296, 10694, 11092, 11491, 11889, 12287, 12685, 13083, 13482, 13880, 14278, 14676, 15074, 15472, 15871, 16269, 16667, 17065, 17463, 17862, 18260, 18658, 19056, 19454, 19853, 20251, 20649, 21047, 21445, 21843, 22242, 22640, 23038, 23436, 23834, 24233, 24631, 25029, 25427, 25825, 26224, 26622, 27020, 27418, 27816, 28214, 28613, 29011, 29409, 29807, 30205, 30604, 31002, 31400]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # [范围信息]
    # 攻击范围比率 : {value2}%
    # REMOVE: data2 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 圣盾
# knight/paladin/d429147c372b549c3dadcabcba50787f
# 0ee8fa5dc525c1a1f23fc6911e921e4a/d429147c372b549c3dadcabcba50787f
class Skill19(ActiveSkill):
    """
        将光之力集中到盾牌上， 抵御一切攻击。\n
        施放技能后， 如果继续按住技能键， 可以维持圣盾状态， 在圣盾状态下受到攻击时不会倒地， 同时大幅减少所受伤害， 免疫眩晕、 石化、 冻结和睡眠异常状态， 并且可以进行移动和短距离的前后冲刺。\n
        防御成功时进入霸体状态， 效果持续一定时间。 在正确的时机防御成功时， 使伤害完全无效， 且天使光翼汲取到最大值\n
        在决斗场中， 防御成功时不进入霸体状态、 不适用伤害无效功能， 且圣盾持续时间上限为3秒。
    """
    name = "圣盾"
    learnLv = 20
    masterLv = 10
    maxLv = 20
    position = 2 #TODO
    rangeLv = 2
    cd = 3
    mp = [80, 800]
    uuid = "d429147c372b549c3dadcabcba50787f"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 所受伤害减少率 : {value0}%
    # REMOVE: data0 = [0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 霸体持续时间 : {value1}秒
    # REMOVE: data1 = [0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 圣盾突击
# knight/paladin/7ec521d063d2190e1fcc5bd229af9bcf
# 0ee8fa5dc525c1a1f23fc6911e921e4a/7ec521d063d2190e1fcc5bd229af9bcf
class Skill20(ActiveSkill):
    """
        将光之力集中到盾牌上， 向前突进。\n
        圣盾会击退路径上的敌人， 对敌人造成多段攻击伤害。\n
        在决斗场中， 突进攻击无法击退霸体状态的敌人。
    """
    name = "圣盾突击"
    learnLv = 20
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cd = 6
    mp = [40, 400]
    uuid = "7ec521d063d2190e1fcc5bd229af9bcf"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 2550, 2809, 3067, 3326, 3585, 3843, 4102, 4361, 4620, 4878, 5137, 5396, 5654, 5913, 6172, 6430, 6689, 6948, 7207, 7465, 7724, 7983, 8241, 8500, 8759, 9017, 9276, 9535, 9793, 10052, 10311, 10570, 10828, 11087, 11346, 11604, 11863, 12122, 12380, 12639, 12898, 13157, 13415, 13674, 13933, 14191, 14450, 14709, 14967, 15226, 15485, 15743, 16002, 16261, 16520, 16778, 17037, 17296, 17554, 17813, 18072, 18330, 18589, 18848, 19107, 19365, 19624, 19883, 20141, 20400]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 多段攻击次数 : {value1}次
    # REMOVE: data1 = [0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 暴击
# knight/paladin/fc1262c19f3d0477ee8eda47b8db8696
# 0ee8fa5dc525c1a1f23fc6911e921e4a/fc1262c19f3d0477ee8eda47b8db8696
class Skill21(PassiveSkill):
    """
        集中精神， 提升物理/魔法暴击率。
    """
    name = "暴击"
    learnLv = 20
    masterLv = 10
    maxLv = 20
    position = 5 #TODO
    rangeLv = 3
    uuid = "fc1262c19f3d0477ee8eda47b8db8696"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 物理/魔法暴击率增加 : {value0}%
    # REMOVE: data0 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)

# 神光喷涌
# knight/paladin/0113c8b1306ca76d208f83f2d093dd62
# 0ee8fa5dc525c1a1f23fc6911e921e4a/0113c8b1306ca76d208f83f2d093dd62
class Skill22(ActiveSkill):
    """
        将光之力集中到武器上， 然后用武器锤击地面， 喷涌神光。\n
        神光向垂直方向喷涌， 造成多段攻击伤害。\n
        按向前方向键， 可以向前移动并进行攻击。\n
    [学习超越之翼后]\n
        基本攻击变更为3次， 原来的上挑攻击力并入锤击攻击力中。\n
        锤击攻击时， 发动小型神光喷涌， 对敌人造成多段攻击伤害。\n
        小型神光喷涌的攻击力以[神光喷涌]攻击力的一定比率适用。
    """
    name = "神光喷涌"
    learnLv = 25
    masterLv = 60
    maxLv = 70
    position = 4 #TODO
    rangeLv = 2
    cd = 8
    mp = [50, 500]
    uuid = "0113c8b1306ca76d208f83f2d093dd62"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 锤击攻击力 : {value0}%
    # REMOVE: data0 = [0, 3235, 3563, 3891, 4220, 4548, 4876, 5204, 5532, 5861, 6189, 6517, 6845, 7173, 7501, 7830, 8158, 8486, 8814, 9142, 9471, 9799, 10127, 10455, 10783, 11112, 11440, 11768, 12096, 12424, 12752, 13081, 13409, 13737, 14065, 14393, 14722, 15050, 15378, 15706, 16034, 16363, 16691, 17019, 17347, 17675, 18003, 18332, 18660, 18988, 19316, 19644, 19973, 20301, 20629, 20957, 21285, 21614, 21942, 22270, 22598, 22926, 23254, 23583, 23911, 24239, 24567, 24895, 25224, 25552, 25880]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 喷涌的神光攻击力 : {value1}%
    # REMOVE: data1 = [0, 3235, 3563, 3891, 4220, 4548, 4876, 5204, 5532, 5861, 6189, 6517, 6845, 7173, 7501, 7830, 8158, 8486, 8814, 9142, 9471, 9799, 10127, 10455, 10783, 11112, 11440, 11768, 12096, 12424, 12752, 13081, 13409, 13737, 14065, 14393, 14722, 15050, 15378, 15706, 16034, 16363, 16691, 17019, 17347, 17675, 18003, 18332, 18660, 18988, 19316, 19644, 19973, 20301, 20629, 20957, 21285, 21614, 21942, 22270, 22598, 22926, 23254, 23583, 23911, 24239, 24567, 24895, 25224, 25552, 25880]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 喷涌的神光多段攻击次数 : {value2}次
    # REMOVE: data2 = [0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 神光喷涌范围比率 : {value3}%
    # REMOVE: data3 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

# 信仰之念
# knight/paladin/8b08f9504167a9c0f3a1d29d71b7943e
# 0ee8fa5dc525c1a1f23fc6911e921e4a/8b08f9504167a9c0f3a1d29d71b7943e
class Skill23(ActiveSkill):
    """
        爆发光之力， 强化自身的基本攻击力和技能攻击力。
    """
    name = "信仰之念"
    learnLv = 30
    masterLv = 10
    maxLv = 20
    position = 7 #TODO
    rangeLv = 3
    cd = 5
    uuid = "8b08f9504167a9c0f3a1d29d71b7943e"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 增益效果持续时间 : {value0}秒
    # REMOVE: data0 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 基本攻击力和技能攻击力增加率 : {value1}%
    # REMOVE: data1 = [0, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 神光盾击
# knight/paladin/ac21c02567f04a92b54dd85c091d1e5a
# 0ee8fa5dc525c1a1f23fc6911e921e4a/ac21c02567f04a92b54dd85c091d1e5a
class Skill24(ActiveSkill):
    """
        将光之力集中到盾牌上， 然后朝地面挥动盾牌， 释放光之力。\n
        被击中的敌人会旋转飞出。
    """
    name = "神光盾击"
    learnLv = 30
    masterLv = 60
    maxLv = 70
    position = 3 #TODO
    rangeLv = 2
    cd = 8
    mp = [60, 600]
    uuid = "ac21c02567f04a92b54dd85c091d1e5a"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 第1击攻击力 : {value0}%
    # REMOVE: data0 = [0, 2977, 3279, 3581, 3883, 4185, 4487, 4789, 5091, 5393, 5695, 5997, 6299, 6601, 6903, 7205, 7507, 7809, 8111, 8413, 8715, 9017, 9319, 9621, 9923, 10225, 10527, 10829, 11131, 11433, 11735, 12037, 12339, 12641, 12943, 13245, 13547, 13849, 14151, 14453, 14755, 15057, 15359, 15661, 15963, 16265, 16566, 16868, 17170, 17472, 17774, 18076, 18378, 18680, 18982, 19284, 19586, 19888, 20190, 20492, 20794, 21096, 21398, 21700, 22002, 22304, 22606, 22908, 23210, 23512, 23814]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 第1击多段攻击次数 : {value1}次
    # REMOVE: data1 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 第2击攻击力 : {value2}%
    # REMOVE: data2 = [0, 3055, 3365, 3675, 3985, 4295, 4605, 4915, 5225, 5535, 5845, 6155, 6465, 6775, 7085, 7394, 7704, 8014, 8324, 8634, 8944, 9254, 9564, 9874, 10184, 10494, 10804, 11114, 11424, 11734, 12044, 12354, 12664, 12974, 13284, 13593, 13903, 14213, 14523, 14833, 15143, 15453, 15763, 16073, 16383, 16693, 17003, 17313, 17623, 17933, 18243, 18553, 18863, 19173, 19482, 19792, 20102, 20412, 20722, 21032, 21342, 21652, 21962, 22272, 22582, 22892, 23202, 23512, 23822, 24132, 24442]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 第2击多段攻击次数 : {value3}次
    # REMOVE: data3 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # [范围信息]
    # 神光释放范围比率 : {value4}%
    # REMOVE: data4 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 烈光
# knight/paladin/82fc7ec7cfb2b7afa8c125a2d9420a78
# 0ee8fa5dc525c1a1f23fc6911e921e4a/82fc7ec7cfb2b7afa8c125a2d9420a78
class Skill25(ActiveSkill):
    """
        将光之力集中到武器上， 从下往上挑击， 使敌人浮空， 然后用盾牌将其砸向地面。\n
        被盾牌击中的敌人会砸到地面后再弹起。
    """
    name = "烈光"
    learnLv = 30
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cd = 8
    mp = [60, 600]
    uuid = "82fc7ec7cfb2b7afa8c125a2d9420a78"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 上挑攻击力 : {value0}%
    # REMOVE: data0 = [0, 9302, 10245, 11189, 12133, 13076, 14020, 14963, 15907, 16851, 17794, 18738, 19682, 20625, 21569, 22513, 23456, 24400, 25343, 26287, 27231, 28174, 29118, 30062, 31005, 31949, 32893, 33836, 34780, 35724, 36667, 37611, 38554, 39498, 40442, 41385, 42329, 43273, 44216, 45160, 46104, 47047, 47991, 48934, 49878, 50822, 51765, 52709, 53653, 54596, 55540, 56484, 57427, 58371, 59315, 60258, 61202, 62145, 63089, 64033, 64976, 65920, 66864, 67807, 68751, 69695, 70638, 71582, 72525, 73469, 74413]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 下砸攻击力 : {value1}%
    # REMOVE: data1 = [0, 9331, 10278, 11225, 12171, 13118, 14065, 15011, 15958, 16905, 17851, 18798, 19745, 20691, 21638, 22585, 23531, 24478, 25425, 26371, 27318, 28265, 29211, 30158, 31105, 32051, 32998, 33945, 34891, 35838, 36785, 37731, 38678, 39625, 40571, 41518, 42465, 43411, 44358, 45305, 46251, 47198, 48145, 49091, 50038, 50985, 51931, 52878, 53825, 54771, 55718, 56665, 57611, 58558, 59505, 60451, 61398, 62345, 63291, 64238, 65185, 66131, 67078, 68025, 68971, 69918, 70865, 71811, 72758, 73705, 74651]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # [范围信息]
    # 攻击范围比率 : {value2}%
    # REMOVE: data2 = [0, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 神光闪耀
# knight/paladin/ab6fc3303df03b58911967dfca2b5d07
# 0ee8fa5dc525c1a1f23fc6911e921e4a/ab6fc3303df03b58911967dfca2b5d07
class Skill26(ActiveSkill):
    """
        将光之力集中到武器上， 然后释放神光能量， 对周围的敌人造成多段攻击伤害。\n
        技能施放过程中， 按跳跃键可以立即发动最后一击。\n
        按向前方向键， 可以向前移动并进行攻击。
    """
    name = "神光闪耀"
    learnLv = 35
    masterLv = 60
    maxLv = 70
    position = 1 #TODO
    rangeLv = 2
    cube = 1
    cd = 16
    mp = [70, 700]
    uuid = "ab6fc3303df03b58911967dfca2b5d07"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 多段攻击力 : {value0}%
    # REMOVE: data0 = [0, 2008, 2212, 2415, 2619, 2823, 3027, 3230, 3434, 3638, 3841, 4045, 4249, 4453, 4656, 4860, 5064, 5267, 5471, 5675, 5878, 6082, 6286, 6490, 6693, 6897, 7101, 7304, 7508, 7712, 7916, 8119, 8323, 8527, 8730, 8934, 9138, 9342, 9545, 9749, 9953, 10156, 10360, 10564, 10767, 10971, 11175, 11379, 11582, 11786, 11990, 12193, 12397, 12601, 12805, 13008, 13212, 13416, 13619, 13823, 14027, 14231, 14434, 14638, 14842, 15045, 15249, 15453, 15657, 15860, 16064]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 多段攻击次数 : {value1}次
    # REMOVE: data1 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 最后一击攻击力 : {value2}%
    # REMOVE: data2 = [0, 8622, 9497, 10371, 11246, 12121, 12996, 13870, 14745, 15620, 16494, 17369, 18244, 19119, 19993, 20868, 21743, 22617, 23492, 24367, 25241, 26116, 26991, 27866, 28740, 29615, 30490, 31364, 32239, 33114, 33988, 34863, 35738, 36613, 37487, 38362, 39237, 40111, 40986, 41861, 42736, 43610, 44485, 45360, 46234, 47109, 47984, 48858, 49733, 50608, 51483, 52357, 53232, 54107, 54981, 55856, 56731, 57605, 58480, 59355, 60230, 61104, 61979, 62854, 63728, 64603, 65478, 66353, 67227, 68102, 68977]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 攻击范围比率 : {value3}%
    # REMOVE: data3 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

    def vp_1(self):
        """
        [神光闪耀]\n
        攻击过程中可以移动和前冲\n
        攻击范围 +40%
        """
        ...

    def vp_2(self):
        """
        [神光闪耀]\n
        施放过程中所受伤害 -70%\n
        可以解除控制型异常状态并施放； 施放中免疫所有异常状态
        """
        ...

# 神光闪影击
# knight/paladin/c91a62dc0a18360acf5031ac0ebf09f5
# 0ee8fa5dc525c1a1f23fc6911e921e4a/c91a62dc0a18360acf5031ac0ebf09f5
class Skill27(ActiveSkill):
    """
        将集中到武器上的光之力向正面射出， 对敌人造成多段攻击伤害， 然后挥动盾牌发射光之冲击波， 发动最后一击。\n
        按向前方向键， 可以短距离向前移动并进行攻击。 最后一击前按向后方向键， 可以在原地发动最后一击。
    """
    name = "神光闪影击"
    learnLv = 35
    masterLv = 60
    maxLv = 70
    position = 6 #TODO
    rangeLv = 2
    cube = 1
    cd = 18
    mp = [70, 700]
    uuid = "c91a62dc0a18360acf5031ac0ebf09f5"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 2288, 2520, 2752, 2985, 3217, 3449, 3681, 3913, 4145, 4377, 4609, 4842, 5074, 5306, 5538, 5770, 6002, 6234, 6467, 6699, 6931, 7163, 7395, 7627, 7859, 8091, 8324, 8556, 8788, 9020, 9252, 9484, 9716, 9949, 10181, 10413, 10645, 10877, 11109, 11341, 11573, 11806, 12038, 12270, 12502, 12734, 12966, 13198, 13431, 13663, 13895, 14127, 14359, 14591, 14823, 15055, 15288, 15520, 15752, 15984, 16216, 16448, 16680, 16913, 17145, 17377, 17609, 17841, 18073, 18305]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 多段攻击次数 : {value1}次
    # REMOVE: data1 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 最后一击攻击力 : {value2}%
    # REMOVE: data2 = [0, 10141, 11170, 12199, 13228, 14257, 15286, 16314, 17343, 18372, 19401, 20430, 21459, 22487, 23516, 24545, 25574, 26603, 27632, 28660, 29689, 30718, 31747, 32776, 33805, 34833, 35862, 36891, 37920, 38949, 39978, 41006, 42035, 43064, 44093, 45122, 46151, 47179, 48208, 49237, 50266, 51295, 52324, 53352, 54381, 55410, 56439, 57468, 58497, 59525, 60554, 61583, 62612, 63641, 64670, 65698, 66727, 67756, 68785, 69814, 70843, 71871, 72900, 73929, 74958, 75987, 77016, 78044, 79073, 80102, 81131]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 攻击范围比率 : {value3}%
    # REMOVE: data3 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

    def vp_1(self):
        """
        [神光闪影击]\n
        被光束命中的敌人将被移动到帕拉丁面前\n
        最后一击命中的敌人将被赋予眩晕异常状态\n
         - 眩晕几率 : 100% \n
         - 持续时间 : 3秒\n
        攻击范围 +70%
        """
        ...

    def vp_2(self):
        """
        [神光闪影击]\n
        删除光束攻击， 突进一小段距离后立即发动最后一击\n
         - 总攻击力相同\n
        [圣盾突击]\n
        可以强制中断[圣盾突击]的施放后僵直并施放该技能， 或强制中断此技能的施放后僵直并施放[圣盾突击]
        """
        ...

# 惩罚之锤
# knight/paladin/0c3a468aee1f7ce06bf91eb3319518c1
# 0ee8fa5dc525c1a1f23fc6911e921e4a/0c3a468aee1f7ce06bf91eb3319518c1
class Skill28(ActiveSkill):
    """
        垂直掉落由光凝聚而成的惩罚之锤， 引发爆炸， 对范围内的敌人造成伤害。
    """
    name = "惩罚之锤"
    learnLv = 40
    masterLv = 60
    maxLv = 70
    position = 4 #TODO
    rangeLv = 2
    cube = 1
    cd = 25
    mp = [80, 800]
    uuid = "0c3a468aee1f7ce06bf91eb3319518c1"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 39144, 43115, 47086, 51057, 55029, 59000, 62971, 66942, 70913, 74884, 78855, 82826, 86798, 90769, 94740, 98711, 102682, 106653, 110624, 114595, 118567, 122538, 126509, 130480, 134451, 138422, 142393, 146365, 150336, 154307, 158278, 162249, 166220, 170191, 174162, 178134, 182105, 186076, 190047, 194018, 197989, 201960, 205931, 209903, 213874, 217845, 221816, 225787, 229758, 233729, 237701, 241672, 245643, 249614, 253585, 257556, 261527, 265498, 269470, 273441, 277412, 281383, 285354, 289325, 293296, 297267, 301239, 305210, 309181, 313152]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # [范围信息]
    # 攻击范围比率 : {value1}%
    # REMOVE: data1 = [0, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

    def vp_1(self):
        """
        [惩罚之锤]\n
        对周围600px内最强敌人落下审判之锤\n
        使命中的敌人进入眩晕异常状态\n
         - 眩晕几率 : 100% \n
         - 持续时间 : 3秒\n
        攻击范围 +40%
        """
        ...

    def vp_2(self):
        """
        [惩罚之锤]\n
        转职技能施放过程中也可以施放 (觉醒技能除外)\n
         - 删除施放动作\n
        被圣光之力强化的锤子发生爆炸， 使自身和周围队员的生命值/魔法值恢复10%
        """
        ...

# 神光之跃
# knight/paladin/5cac3411ccef1af333953e0ded5e942d
# 0ee8fa5dc525c1a1f23fc6911e921e4a/5cac3411ccef1af333953e0ded5e942d
class Skill29(ActiveSkill):
    """
        将光之力集中到武器上， 然后跳向前方锤击地面， 引发爆炸， 对范围内的敌人造成伤害。\n
        按前方向键， 可以跳得更远。
    """
    name = "神光之跃"
    learnLv = 45
    masterLv = 60
    maxLv = 70
    position = 6 #TODO
    rangeLv = 2
    cube = 2
    cd = 45
    mp = [90, 900]
    uuid = "5cac3411ccef1af333953e0ded5e942d"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 65547, 72197, 78846, 85496, 92146, 98795, 105445, 112095, 118745, 125394, 132044, 138694, 145343, 151993, 158643, 165292, 171942, 178592, 185242, 191891, 198541, 205191, 211840, 218490, 225140, 231789, 238439, 245089, 251738, 258388, 265038, 271688, 278337, 284987, 291637, 298286, 304936, 311586, 318235, 324885, 331535, 338185, 344834, 351484, 358134, 364783, 371433, 378083, 384732, 391382, 398032, 404681, 411331, 417981, 424631, 431280, 437930, 444580, 451229, 457879, 464529, 471178, 477828, 484478, 491128, 497777, 504427, 511077, 517726, 524376]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # [范围信息]
    # 攻击范围比率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

    def vp_1(self):
        """
        [神光之跃]\n
        施放技能时进入无敌状态\n
        大幅增加跳跃高度\n
        攻击范围 +30%
        """
        ...

    def vp_2(self):
        """
        [神光之跃]\n
        生成审判之锤砸向前方\n
         - 可以强制中断转职技能的施放后僵直并施放该技能 (觉醒技能除外)\n
        变更为可填充2次的技能\n
         - 每次填充冷却时间 : 22.5秒\n
         - 单次攻击力 -50%
        """
        ...

# 荣耀之光
# knight/paladin/85f7c810ad503790e8626439fe936d56
# 0ee8fa5dc525c1a1f23fc6911e921e4a/85f7c810ad503790e8626439fe936d56
class Skill30(PassiveSkill):
    """
        天界之力进一步集中到帕拉丁身上， 增加光盾大小和物理攻击力， 并且进入地下城时可以获得一定数量的天使光翼。
    """
    name = "荣耀之光"
    learnLv = 48
    masterLv = 40
    maxLv = 50
    position = 7 #TODO
    rangeLv = 3
    uuid = "85f7c810ad503790e8626439fe936d56"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 物理攻击力增加率 : {value0}%
    # REMOVE: data0 = [0, 12, 13.5, 15, 16.5, 18, 19.5, 21, 22.5, 24, 25.5, 27, 28.5, 30, 31.5, 33, 34.5, 36, 37.5, 39, 40.5, 42, 43.5, 45, 46.5, 48, 49.5, 51, 52.5, 54, 55.5, 57, 58.5, 60, 61.5, 63, 64.5, 66, 67.5, 69, 70.5, 72, 73.5, 75, 76.5, 78, 79.5, 81, 82.5, 84, 85.5]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 天使光翼获得量 : 2个

# 信仰聚合 : 神光惩戒
# knight/paladin/002cbdd9bfd0f0b970451ae8d48d029e
# 0ee8fa5dc525c1a1f23fc6911e921e4a/002cbdd9bfd0f0b970451ae8d48d029e
class Skill31(ActiveSkill):
    """
        以绝对防御的姿态将凝聚的天界之光加速集中到武器和盾牌上， 然后向前挥动武器和盾牌， 引爆光之力。\n
        在神光集中的状态下， 获得更强大的防御力， 可以抵御一切伤害。 若持续按住技能键， 可以使该状态持续一定时间。\n
        神光爆炸时， 会消耗所有天使光翼， 使范围内的敌人受到伤害。 技能结束时， 天使光翼吸收到最大值。
    """
    name = "信仰聚合 : 神光惩戒"
    learnLv = 50
    masterLv = 40
    maxLv = 50
    position = 4 #TODO
    rangeLv = 5
    cube = 5
    cd = 145
    mp = [300, 3000]
    uuid = "002cbdd9bfd0f0b970451ae8d48d029e"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 神光集中状态可持续时间 : {value0}秒
    # REMOVE: data0 = [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 攻击力 : {value1}%
    # REMOVE: data1 = [0, 117802, 145118, 172435, 199751, 227068, 254384, 281700, 309017, 336333, 363650, 390966, 418282, 445599, 472915, 500232, 527548, 554864, 582181, 609497, 636814, 664130, 691447, 718763, 746079, 773396, 800712, 828029, 855345, 882661, 909978, 937294, 964611, 991927, 1019243, 1046560, 1073876, 1101193, 1128509, 1155825, 1183142, 1210458, 1237775, 1265091, 1292407, 1319724, 1347040, 1374357, 1401673, 1428989, 1456306]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 神光庇护
# knight/paladin/31823197cc0b04d4c5dcf8f928d9220c
# 0ee8fa5dc525c1a1f23fc6911e921e4a/31823197cc0b04d4c5dcf8f928d9220c
class Skill32(ActiveSkill):
    """
        将集中到盾牌上的光之力释放到周围， 为自己和队友抵挡受到的一切攻击。\n
        在持续时间内， 自身和范围内的队友受到攻击时不会倒地， 同时大幅减少所受伤害， 免疫眩晕、 石化、 冻结和睡眠异常状态。\n
    消耗天使光翼施放时， 恢复周围队员的生命值。\n
        在持续时间内按跳跃键可以解除神光庇护状态。
    """
    name = "神光庇护"
    learnLv = 60
    masterLv = 1
    maxLv = 1
    position = 2 #TODO
    rangeLv = 2
    cube = 1
    cd = 25
    mp = [240, 240]
    uuid = "31823197cc0b04d4c5dcf8f928d9220c"
    hasVP = True
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 所受伤害减少率 : {value0}%
    # REMOVE: data0 = [0, 9]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 所受伤害减少率 (队友) : {value1}%
    # REMOVE: data1 = [0, 9]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 持续时间 : {value2}秒
    # REMOVE: data2 = [0, 5]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 释放范围比率 : {value3}%
    # REMOVE: data3 = [0, 115]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

    def vp_1(self):
        """
        [神光庇护]\n
        施放时， 将周围的敌人向外击退\n
        所受伤害减少量变更为50%
        """
        ...

    def vp_2(self):
        """
        [神光庇护]\n
        施放后帕拉丁可以进行其他行动\n
         - 在释放范围内施放[圣盾]时， 伤害减少效果不会叠加\n
        释放范围 +20%
        """
        ...

# 圣盾裁决
# knight/paladin/dac8d8207618150c162e4c6f9e168527
# 0ee8fa5dc525c1a1f23fc6911e921e4a/dac8d8207618150c162e4c6f9e168527
class Skill33(ActiveSkill):
    """
        将光之力集中到盾牌上， 向前推出盾牌并释放光之力。\n
        释放的光束对范围内的敌人造成伤害， 并使敌人进入眩晕状态。
    """
    name = "圣盾裁决"
    learnLv = 60
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 2
    cube = 1
    cd = 25
    mp = [120, 1200]
    uuid = "dac8d8207618150c162e4c6f9e168527"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 51105, 56290, 61474, 66659, 71843, 77028, 82212, 87397, 92582, 97766, 102951, 108135, 113320, 118504, 123689, 128873, 134058, 139243, 144427, 149612, 154796, 159981, 165165, 170350, 175535, 180719, 185904, 191088, 196273, 201457, 206642, 211827, 217011, 222196, 227380, 232565, 237749, 242934, 248118, 253303, 258488, 263672, 268857, 274041, 279226, 284410, 289595, 294780, 299964, 305149]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 眩晕几率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 眩晕持续时间 : {value2}秒
    # REMOVE: data2 = [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 攻击范围比率 : {value3}%
    # REMOVE: data3 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

    def vp_1(self):
        """
        [圣盾裁决]\n
        可以强制中断转职技能的施放后僵直并施放该技能 (觉醒技能除外)\n
        施放技能后立即被击时所受伤害无效\n
        眩晕效果变更为强制控制
        """
        ...

    def vp_2(self):
        """
        [圣盾裁决]\n
        在盾牌中凝聚更强大的光之力后向前方直线发射\n
         - 总攻击力相同\n
         - 删除眩晕效果\n
        光之力经过的地方生成光明之路， 使路径上的自身和队员的移动速度增加\n
         - 持续时间 : 5秒\n
         - 移动速度增加量 : 100%
        """
        ...

# 破晓之光
# knight/paladin/8e358ecf99ac9df31a6132aeafe378a9
# 0ee8fa5dc525c1a1f23fc6911e921e4a/8e358ecf99ac9df31a6132aeafe378a9
class Skill34(ActiveSkill):
    """
        将光之力集中到自己身上， 冲上天空后快速降落到地面， 引发爆炸。\n
        爆炸时产生光之冲击波， 对范围内的敌人造成伤害。\n
        可以利用方向键调整降落地点。
    """
    name = "破晓之光"
    learnLv = 70
    masterLv = 40
    maxLv = 50
    position = 1 #TODO
    rangeLv = 2
    cube = 2
    cd = 50
    mp = [140, 1400]
    uuid = "8e358ecf99ac9df31a6132aeafe378a9"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 97191, 107051, 116911, 126771, 136631, 146491, 156351, 166211, 176071, 185931, 195791, 205651, 215510, 225370, 235230, 245090, 254950, 264810, 274670, 284530, 294390, 304250, 314110, 323970, 333830, 343690, 353550, 363410, 373270, 383130, 392990, 402850, 412710, 422570, 432430, 442289, 452149, 462009, 471869, 481729, 491589, 501449, 511309, 521169, 531029, 540889, 550749, 560609, 570469, 580329]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # [范围信息]
    # 攻击范围比率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

    def vp_1(self):
        """
        [破晓之光]\n
        施放后从天空落下审判光柱 (最多攻击10次)\n
         - 总攻击力相同\n
        攻击范围 +30%
        """
        ...

    def vp_2(self):
        """
        [破晓之光]\n
        变更为可以在空中施放\n
         - 被击和倒地状态下也可以施放\n
        落地动作变更为无敌状态\n
        无法填充[天使光翼]
        """
        ...

# 戒律
# knight/paladin/9f57da5cb3651d81ca7dc9f78be33d01
# 0ee8fa5dc525c1a1f23fc6911e921e4a/9f57da5cb3651d81ca7dc9f78be33d01
class Skill35(PassiveSkill):
    """
        奉行伟大意志、 执行天命的破晓女神进入地下城时， 获得更多天使光翼， 并增加基本攻击力和技能攻击力。 
    """
    name = "戒律"
    learnLv = 75
    masterLv = 40
    maxLv = 50
    position = 3 #TODO
    rangeLv = 3
    uuid = "9f57da5cb3651d81ca7dc9f78be33d01"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 基本攻击力和技能攻击力增加率 : {value0}%
    # REMOVE: data0 = [0, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 天使光翼获得量 : {value1}个
    # REMOVE: data1 = [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 神光回旋斩
# knight/paladin/0e3da11226dd30c2aaef52e36eff7f3f
# 0ee8fa5dc525c1a1f23fc6911e921e4a/0e3da11226dd30c2aaef52e36eff7f3f
class Skill36(ActiveSkill):
    """
        将盾牌中凝聚的光之力挥洒到周围， 吸附范围内的敌人， 然后挥动武器上挑攻击敌人。
    """
    name = "神光回旋斩"
    learnLv = 75
    masterLv = 40
    maxLv = 50
    position = 6 #TODO
    rangeLv = 2
    cube = 5
    cd = 40
    mp = [450, 4500]
    uuid = "0e3da11226dd30c2aaef52e36eff7f3f"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 101997, 112345, 122692, 133040, 143387, 153735, 164082, 174430, 184777, 195125, 205472, 215820, 226167, 236515, 246862, 257210, 267557, 277905, 288252, 298600, 308947, 319295, 329642, 339990, 350338, 360685, 371033, 381380, 391728, 402075, 412423, 422770, 433118, 443465, 453813, 464160, 474508, 484855, 495203, 505550, 515898, 526245, 536593, 546940, 557288, 567635, 577983, 588331, 598678, 609026]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # [范围信息]
    # 攻击范围比率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

    def vp_1(self):
        """
        [神光回旋斩]\n
        向周围倾泻天堂的力量， 发动攻击并引发连锁爆炸\n
         - 总攻击力相同\n
        连锁爆炸范围 +20%
        """
        ...

    def vp_2(self):
        """
        [神光回旋斩]\n
        跳跃后追踪前方最强敌人， 突进后下劈攻击\n
        施放技能时, 可以获得并消耗最大数量的[天使光翼]， 适用增益效果
        """
        ...

# 神圣信约
# knight/paladin/3cb633d00f8f6ee088682c9171020d26
# 0ee8fa5dc525c1a1f23fc6911e921e4a/3cb633d00f8f6ee088682c9171020d26
class Skill37(ActiveSkill):
    """
        将武器中凝聚的光之力注入地面并向四周喷涌， 对敌人造成多段攻击伤害。 
    """
    name = "神圣信约"
    learnLv = 80
    masterLv = 40
    maxLv = 50
    position = 2 #TODO
    rangeLv = 2
    cube = 5
    cd = 45
    mp = [500, 5000]
    uuid = "3cb633d00f8f6ee088682c9171020d26"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 10571, 11643, 12716, 13788, 14861, 15933, 17006, 18078, 19150, 20223, 21295, 22368, 23440, 24512, 25585, 26657, 27730, 28802, 29875, 30947, 32019, 33092, 34164, 35237, 36309, 37382, 38454, 39526, 40599, 41671, 42744, 43816, 44888, 45961, 47033, 48106, 49178, 50251, 51323, 52395, 53468, 54540, 55613, 56685, 57757, 58830, 59902, 60975, 62047, 63120]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 多段攻击次数 : {value1}次
    # REMOVE: data1 = [0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # [范围信息]
    # 攻击范围比率 : {value2}%
    # REMOVE: data2 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

    def vp_1(self):
        """
        [神圣信约]\n
        将武器中蕴含的光之力量聚集到地面， 引发大爆炸\n
        攻击范围 +30%
        """
        ...

    def vp_2(self):
        """
        [神圣信约]\n
        可以在除觉醒技能外的转职技能施放过程中施放； 可以解除控制型异常状态并施放\n
         - 由大天使代替施放技能， 解除帕拉丁的负面异常状态
        """
        ...

# 神圣意志 : 大天使降临
# knight/paladin/6d7c9a15c08cc41d70125083e869e1a1
# 0ee8fa5dc525c1a1f23fc6911e921e4a/6d7c9a15c08cc41d70125083e869e1a1
class Skill38(ActiveSkill):
    """
        向前方举起盾牌， 进入意志召唤状态， 使大天使降临， 利用充溢的光之力治愈队友。 (恢复量受天使光翼的影响)\n
        按住技能键可以维持意志召唤状态， 松开技能键或者经过一定时间后， 与大天使合力向前方突进， 释放神光， 使周围敌人受到伤害。\n
        意志召唤状态下， 按向后方向键时， 在原地释放神光。\n
        技能结束时， 天使光翼汲取到最大值。
    """
    name = "神圣意志 : 大天使降临"
    learnLv = 85
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 5
    cube = 10
    cd = 180
    mp = [2000, 5000]
    uuid = "6d7c9a15c08cc41d70125083e869e1a1"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 意志召唤持续时间 : {value0}秒
    # REMOVE: data0 = [0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 攻击力 : {value1}%
    # REMOVE: data1 = [0, 271278, 334183, 397088, 459993, 522898, 585803, 648708, 711613, 774518, 837423, 900328, 963233, 1026139, 1089044, 1151949, 1214854, 1277759, 1340664, 1403569, 1466474, 1529379, 1592284, 1655189, 1718094, 1780999, 1843904, 1906809, 1969714, 2032619, 2095524, 2158429, 2221334, 2284239, 2347144, 2410049, 2472955, 2535860, 2598765, 2661670, 2724575, 2787480, 2850385, 2913290, 2976195, 3039100, 3102005, 3164910, 3227815, 3290720, 3353625]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 超越之翼
# knight/paladin/c1dd8b776fb1dd24c6373c678ef1dd2e
# 0ee8fa5dc525c1a1f23fc6911e921e4a/c1dd8b776fb1dd24c6373c678ef1dd2e
class Skill39(PassiveSkill):
    """
        皓曦·帕拉丁获得超越者梅丹佐之力， 增加基本攻击力和转职技能攻击力， 部分技能获得附加效果。\n
        [天使光翼] : 进入地下城时， 增加天使光翼获得量； 额外增加2个新的光翼， 在拥有7个及以上光翼的状态下， 发动[天使光翼]时， 效果中增加减少队友所受伤害的功能。\n
        (伤害减少效果不与[圣盾]、 [神光庇护]的伤害减少效果叠加)\n
        [神光喷涌] : 基本攻击变更为3次， 原来的第4次上挑攻击力并入锤击攻击力中。\n
        锤击攻击时， 发动小型神光喷涌， 对敌人造成多段攻击伤害。\n
        小型神光喷涌的攻击力以[神光喷涌]攻击力的一定比率适用。    
    """
    name = "超越之翼"
    learnLv = 95
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 3
    uuid = "c1dd8b776fb1dd24c6373c678ef1dd2e"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 基本攻击力和转职技能攻击力增加率 : {value0}%
    # REMOVE: data0 = [0, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # [神光喷涌]
    # 小型神光喷涌攻击力 : 神光喷涌攻击力的{value1}%
    # REMOVE: data1 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # [天使光翼]
    # 队友所受伤害减少率 (7个) : {value2}%
    # REMOVE: data2 = [0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 队友所受伤害减少率 (8个) : {value3}%
    # REMOVE: data3 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 天使光翼获得量 : {value4}个
    # REMOVE: data4 = [0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 神光耀世
# knight/paladin/481348575c1e141925c836b59c5db3ca
# 0ee8fa5dc525c1a1f23fc6911e921e4a/481348575c1e141925c836b59c5db3ca
class Skill40(ActiveSkill):
    """
        召唤梅丹佐的盾牌， 然后挥动盾牌， 利用神光之力攻击敌人。\n
        神光照射的地方产生光之裂缝， 然后帕拉丁用盾牌砸向地面， 使光之裂缝爆炸， 对大范围的敌人造成强力伤害。\n
        施放技能时， 在装备梅丹佐的盾牌之前， 天使光翼汲取到最大值。
    """
    name = "神光耀世"
    learnLv = 95
    masterLv = 40
    maxLv = 50
    position = 7 #TODO
    rangeLv = 2
    cube = 7
    cd = 60
    mp = [960, 7200]
    uuid = "481348575c1e141925c836b59c5db3ca"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 神光攻击力 : {value0}%
    # REMOVE: data0 = [0, 19405, 21373, 23342, 25310, 27279, 29248, 31216, 33185, 35153, 37122, 39090, 41059, 43028, 44996, 46965, 48933, 50902, 52871, 54839, 56808, 58776, 60745, 62713, 64682, 66651, 68619, 70588, 72556, 74525, 76493, 78462, 80431, 82399, 84368, 86336, 88305, 90274, 92242, 94211, 96179, 98148, 100116, 102085, 104054, 106022, 107991, 109959, 111928, 113897, 115865]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 神光多段攻击次数 : {value1}次
    # REMOVE: data1 = [0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 下砸冲击波攻击力 : {value2}%
    # REMOVE: data2 = [0, 25873, 28498, 31122, 33747, 36372, 38997, 41621, 44246, 46871, 49496, 52121, 54745, 57370, 59995, 62620, 65244, 67869, 70494, 73119, 75744, 78368, 80993, 83618, 86243, 88867, 91492, 94117, 96742, 99367, 101991, 104616, 107241, 109866, 112490, 115115, 117740, 120365, 122990, 125614, 128239, 130864, 133489, 136113, 138738, 141363, 143988, 146613, 149237, 151862, 154487]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 光之裂缝爆炸攻击力 : {value3}%
    # REMOVE: data3 = [0, 25873, 28498, 31122, 33747, 36372, 38997, 41621, 44246, 46871, 49496, 52121, 54745, 57370, 59995, 62620, 65244, 67869, 70494, 73119, 75744, 78368, 80993, 83618, 86243, 88867, 91492, 94117, 96742, 99367, 101991, 104616, 107241, 109866, 112490, 115115, 117740, 120365, 122990, 125614, 128239, 130864, 133489, 136113, 138738, 141363, 143988, 146613, 149237, 151862, 154487]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 光之裂缝爆炸多段攻击次数 : {value4}次
    # REMOVE: data4 = [0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 启示录 : 末日救赎
# knight/paladin/5f4c55fe2ebdf0623bd76d4fda872ddc
# 0ee8fa5dc525c1a1f23fc6911e921e4a/5f4c55fe2ebdf0623bd76d4fda872ddc
class Skill41(ActiveSkill):
    """
        以超越者梅丹佐的姿态现身， 遵照最后的启示， 救赎整个世界。\n
        施放时， 神圣光辉环绕在皓曦·帕拉丁周围， 稍后， 拥有八翼的超越者梅丹佐现身。\n
        然后， 周围漂浮的梅丹佐之眼中发射光芒， 造成多段攻击伤害， 梅丹佐升上天空， 召唤巨大的梅丹佐之锤砸向地面， 对敌人造成巨大伤害。\n
        首次施放时， [天使光翼]效果以最大效果发动； 技能结束时， 天使光翼汲取到最大值。\n
    [三次觉醒技能]\n
        使用三次觉醒技能时， 与关联的技能共享冷却时间。\n
        若关联的技能还在冷却中， 则无法使用三次觉醒技能。
    """
    name = "启示录 : 末日救赎"
    learnLv = 100
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 5
    cube = 15
    cd = 290
    mp = [4025, 8055]
    uuid = "5f4c55fe2ebdf0623bd76d4fda872ddc"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 首次爆炸攻击力 : {value0}%
    # REMOVE: data0 = [0, 70618, 86994, 103369, 119744, 136119, 152495, 168870, 185245, 201620, 217996, 234371, 250746, 267121, 283497, 299872, 316247, 332622, 348998, 365373, 381748, 398123, 414499, 430874, 447249, 463624, 480000, 496375, 512750, 529126, 545501, 561876, 578251, 594627, 611002, 627377, 643752, 660128, 676503, 692878, 709253, 725629, 742004, 758379, 774754, 791130, 807505, 823880, 840255, 856631, 873006]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 梅丹佐之眼攻击力 : {value1}%
    # REMOVE: data1 = [0, 20177, 24855, 29534, 34213, 38891, 43570, 48249, 52927, 57606, 62284, 66963, 71642, 76320, 80999, 85678, 90356, 95035, 99714, 104392, 109071, 113750, 118428, 123107, 127785, 132464, 137143, 141821, 146500, 151179, 155857, 160536, 165215, 169893, 174572, 179251, 183929, 188608, 193287, 197965, 202644, 207322, 212001, 216680, 221358, 226037, 230716, 235394, 240073, 244752, 249430]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 梅丹佐之眼多段攻击次数 : {value2}次
    # REMOVE: data2 = [0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 梅丹佐之锤冲撞攻击力 : {value3}%
    # REMOVE: data3 = [0, 282473, 347974, 413475, 478976, 544477, 609978, 675479, 740980, 806481, 871982, 937484, 1002985, 1068486, 1133987, 1199488, 1264989, 1330490, 1395991, 1461492, 1526993, 1592494, 1657995, 1723496, 1788997, 1854498, 1919999, 1985500, 2051001, 2116502, 2182003, 2247504, 2313005, 2378506, 2444007, 2509508, 2575009, 2640510, 2706011, 2771512, 2837013, 2902514, 2968016, 3033517, 3099018, 3164519, 3230020, 3295521, 3361022, 3426523, 3492024]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 终结爆炸攻击力 : {value4}%
    # REMOVE: data4 = [0, 30265, 37283, 44301, 51319, 58337, 65355, 72373, 79391, 86409, 93427, 100445, 107463, 114481, 121499, 128517, 135535, 142552, 149570, 156588, 163606, 170624, 177642, 184660, 191678, 198696, 205714, 212732, 219750, 226768, 233786, 240804, 247822, 254840, 261858, 268876, 275894, 282912, 289930, 296948, 303966, 310984, 318002, 325020, 332038, 339056, 346074, 353091, 360109, 367127, 374145]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 终结爆炸多段攻击次数 : {value5}次
    # REMOVE: data5 = [0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)


class classChange(Character):
    def __init__(self, equVersion):

        self.name = 'paladin'
        self.nameCN = '皓曦·帕拉丁'
        self.role = 'knight'
        self.角色 = '守护者'
        self.职业 = '帕拉丁'
        self.jobId = '0ee8fa5dc525c1a1f23fc6911e921e4a'
        self.jobGrowId = '6d459bc74ba73ee4fe5cdc4655400193'

        self.武器选项 = [] # TODO
        self.输出类型选项 = [] # TODO
        self.输出类型 = '' # TODO
        self.防具精通属性 = [''] # TODO
        self.防具类型 = ''
        self.buff = ... # TODO

        super().__init__(equVersion, __name__)
